﻿using System;
namespace mesoBoard.Services
{
    interface IUsers
    {
        bool ActivateUser(string userName, string activationCode);
        global::mesoBoard.Data.User CurrentUser { get; }
        void DeletePasswordResetRequest(int userID);
        bool EmailInUse(string email);
        global::mesoBoard.Data.User GetUser();
        global::mesoBoard.Data.User GetUser(int userID);
        global::mesoBoard.Data.User GetUser(string userNameORemail);
        void LoginRoutine(global::mesoBoard.Data.User theUser, string ipAddress);
        void LogoutRoutine(int userID);
        void Register(global::mesoBoard.Data.User theUser);
        string RequestPasswordReset(int userID);
        string ResetPassword(int userID);
        void SessionEnd(string ipAddress);
        void SessionStart(string ipAddress);
        void UpdatePassword(int userID, string newPassword);
        void UpdateProfile(global::mesoBoard.Data.UserProfile TheProfile);
        bool UserExists(string userNameorID);
        bool ValidatePassword(global::mesoBoard.Data.User theUser, string password);
        bool ValidatePassword(int userID, string password);
        bool ValidatePassword(string userName, string password);
        bool ValidatePasswordResetRequest(string token);
    }
}
